package worldinruin.file;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import worldinruin.core.IMap;

public interface IFile {
	
	/**
	 * Loads map.
	 * @param filename The map's name.
	 * @return Map
	 */
	IMap loadMap(String filename);
	
	/**
	 * Saves a map.
	 * @param filename Map's name.
	 * @param map Map object.
	 */
	void saveMap(String filename, IMap map);
	
	/**
	 * Gets the map with said name.
	 * @param mapName Name of the map.
	 * @return Map.
	 */
	IMap getMap(String mapName);
	
	/**
	 * Gets names of all maps available.
	 * @return Set of strings.
	 */
	Set<String> getMapNames();
	
	/**
	 * Gets an array of maps.
	 * @return An array of maps.
	 */
	ArrayList<IMap> getMaps();
	
	/**
	 * Saves player names used.
	 * @param playerNames List of player names.
	 */
	void savePlayerNames(List<String> playerNames);

	/**
	 * Loads the list of player names.
	 * @return List of player names.
	 */
	List<String> loadPlayerNames();

}
